package com.bestcem.xm.ticket.dao.mapper;

import com.bestcem.xm.ticket.entity.mysql.TicketWechatNotificationDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * ds_ticket_wechat 相关 MySQL mapper 方法
 *
 * @author XiaoYunSong <ys.xiao@idiaoyan.com>
 * @version 通知提醒新增微信公众号
 * @date 2022/4/1 18:55
 */
@Mapper
public interface TicketWechatNotificationDaoMapper {
    /**
     * 查询 对应的订阅关系
     *
     * @param surveyId 问卷id
     * @param openId   微信用户 openId
     * @return 订阅关系
     * @author XiaoYunSong <ys.xiao@idiaoyan.com>
     * @date 2022/4/18 17:52
     */
    TicketWechatNotificationDO selectNotificationSubscriber(String surveyId, String openId);


    /**
     * 查询 通知提醒的订阅微信用户
     *
     * @param surveyId 问卷id
     * @return 订阅微信用户 openId 列表
     * @author XiaoYunSong <ys.xiao@idiaoyan.com>
     * @date 2022/4/7 10:52
     */
    List<String> selectNotificationSubscriberOpenIds(String surveyId);


    /**
     * 插入 单条 通知提醒 微信用户 对应关系
     *
     * @param isDo 实体信息
     * @return 插入的实体
     * @author XiaoYunSong <ys.xiao@idiaoyan.com>
     * @date 2022/4/1 19:13
     */
    int insert(TicketWechatNotificationDO isDo);


    /**
     * 删除 微信用户订阅通知提醒 链接关系
     *
     * @param surveyId 问卷id
     * @param openIds  微信openId列表
     * @return 删除成功与否
     * @author XiaoYunSong <ys.xiao@idiaoyan.com>
     * @date 2022/4/1 19:13
     */
    int deleteNotificationSubscribers(String surveyId, List<String> openIds);


    /**
     * 删除 微信用户的所有通知提醒订阅 链接关系
     *
     * @param openId 微信openId
     * @return 删除成功与否
     * @author XiaoYunSong <ys.xiao@idiaoyan.com>
     * @date 2022/4/7 10:55
     */
    int deleteWechatUserSubscription(String openId);
}
